package quartz.backgroundDetail;

import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import quartz.backgroundTask.MyJob1;

/**
 * 该类用于创建Quartz框架中的JobDetail（任务）、Trigger（触发器）对象
 */
@Service // 声明将该类交给SpringIOC容器管理
public class JobService1 {

    @Autowired
    private Scheduler scheduler;

    JobKey jobKey_1 = new JobKey("job_1", "group_1");// 任务名称:job_1; 所属任务组:group_1;
    TriggerKey triggerKey_1 = new TriggerKey("trigger_1", "group_1");// 触发器名称:trigger_1; 所属触发器组:group_1;


    /**
     * 创建任务（"jobDetail_l"）
     * @throws Exception
     */
    public void createJobDetail1() throws Exception {
        // 1、创建任务JobDetail（与任务的具体实现类MyJob1关联）
        JobDetail jobDetail_l = JobBuilder.newJob(MyJob1.class).withIdentity(jobKey_1).build();

        // 2、创建Trigger
        Trigger trigger_1 = TriggerBuilder.newTrigger()
                .withIdentity(triggerKey_1)
                .startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule() // 使用简单调度器
                        .withIntervalInSeconds(5) // 每5秒执行一次
                        .repeatForever()) // 无限重复
                .build();


        // 3、将JobDetail和Trigger加入到该scheduler中
        scheduler.scheduleJob(jobDetail_l, trigger_1);

    }

    /**
     * 删除任务（"jobDetail_l"）
     * @throws Exception
     */
    public void deleteJobDetail1() throws Exception {
        // 1、将任务JobDetail和Trigger从该scheduler中移除
        scheduler.deleteJob(jobKey_1);
    }
}
